home *** CD-ROM | disk | FTP | other *** search
/ Electronic Entertainment 1995 December / Electronic Entertainment CD-ROM Sampler Disc (December 1995).BIN / mac / NETUSA / SETUP.MS_ / SETUP.MS
Text File  |  1995-08-08  |  9KB  |  311 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 1
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST OPTIONS       = 800
  18. CONST APPHELP       = 900
  19. CONST BADPATH       = 6400
  20. CONST INIDLG    = 1000
  21. CONST OPTIONS_BAUD  = 1100
  22. CONST PHONE_NUMBER = 1200
  23.  
  24. ''Bitmap ID
  25. CONST LOGO = 1
  26.  
  27. GLOBAL DEST$        ''Default destination directory.
  28. GLOBAL INI_DEST$ 
  29. GLOBAL SYS_DEST$
  30. GLOBAL OPTCUR$      ''Option selection from option dialog.  
  31. GLOBAL OPTCUR_BAUD$
  32. GLOBAL PHONE$        ''Phone number to dial
  33.  
  34. DECLARE SUB Install
  35. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  36.  
  37.  
  38. INIT:
  39.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  40.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  41.  
  42.     SetBitmap CUIDLL$, LOGO
  43.     SetTitle "NetUSA Setup"
  44.  
  45.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  46.     IF szInf$ = "" THEN
  47.         szInf$ = GetSymbolValue("STF_CWDDIR") + "Setup.INF"
  48.     END IF
  49.     ReadInfFile szInf$
  50.  
  51.     OPTCUR$ = "1"
  52.     DEST$ = "C:\netusa"
  53.     INI_DEST$ = GetWindowsDir()
  54.     SYS_DEST$ = INI_DEST$ + "SYSTEM"
  55.     PHONE$ = "18004117772"
  56.  
  57. '$IFDEF DEBUG
  58.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  59.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  60.     IF IsDriveValid(WinDrive$) = 0 THEN
  61.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  62.         GOTO QUIT
  63.     END IF
  64. '$ENDIF ''DEBUG
  65.  
  66.  
  67. WELCOME:
  68.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  69.     IF sz$ = "CONTINUE" THEN
  70.         UIPop 1
  71.     ELSE
  72.         GOSUB ASKQUIT
  73.         GOTO WELCOME
  74.     END IF
  75.  
  76. OPTION:
  77.     SetSymbolValue "RadioDefault", OPTCUR$
  78. OPTL1:
  79.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  80.     OPTCUR$ = GetSymbolValue("ButtonChecked") 
  81.  
  82.     IF sz$ = "CONTINUE" THEN
  83.         UIPop(1)
  84.     ELSEIF sz$ = "REACTIVATE" THEN
  85.         GOTO OPTL1
  86.     ELSE
  87.         GOSUB ASKQUIT
  88.         GOTO OPTION
  89.     END IF
  90.        
  91. OPTION_BAUD:
  92.     SetSymbolValue "RadioDefault", OPTCUR_BAUD$
  93. OPTL1_BAUD:
  94.     sz$ = UIStartDlg(CUIDLL$, OPTIONS_BAUD, "FRadioDlgProc", APPHELP, HELPPROC$)
  95.     OPTCUR_BAUD$ = GetSymbolValue("ButtonChecked") 
  96.  
  97.     IF sz$ = "CONTINUE" THEN
  98.         UIPop(1)
  99.     ELSEIF sz$ = "REACTIVATE" THEN
  100.         GOTO OPTL1
  101.     ELSE
  102.         GOSUB ASKQUIT
  103.         GOTO OPTION
  104.     END IF
  105.  
  106. GETPHONE:
  107.     SetSymbolValue "EditTextIn", PHONE$
  108.     SetSymbolValue "EditFocus", "END"
  109. GETPHONEL1:
  110.     sz$ = UIStartDlg(CUIDLL$, PHONE_NUMBER, "FEditDlgProc", APPHELP, HELPPROC$)
  111.     PHONE$ = GetSymbolValue("EditTextOut")
  112.  
  113.     IF sz$ = "CONTINUE" THEN
  114.         UIPop(1)
  115.     ELSEIF sz$ = "REACTIVATE" THEN
  116.         GOTO GETPHONEL1
  117.     ELSE
  118.         GOSUB ASKQUIT
  119.         GOTO GETPHONE
  120.     END IF
  121.  
  122. GETPATH:
  123.     SetSymbolValue "EditTextIn", DEST$
  124.     SetSymbolValue "EditFocus", "END"
  125. GETPATHL1:
  126.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  127.     DEST$ = GetSymbolValue("EditTextOut")
  128.  
  129.     IF sz$ = "CONTINUE" THEN
  130.         IF IsDirWritable(DEST$) = 0 THEN
  131.             GOSUB BADPATH
  132.             GOTO GETPATHL1
  133.         END IF
  134.         UIPop 1
  135.     ELSEIF sz$ = "REACTIVATE" THEN
  136.         GOTO GETPATHL1
  137.     ELSE
  138.         GOSUB ASKQUIT
  139.         GOTO GETPATH
  140.     END IF
  141.  
  142. '*GETINIPATH:
  143. '*    SetSymbolValue "EditTextIn", INI_DEST$
  144. '*    SetSymbolValue "EditFocus", "END"
  145. '*GETINIPATHL1:
  146. '*    sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  147. '*    INI_DEST$ = GetSymbolValue("EditTextOut")
  148.  
  149. '*    IF sz$ = "CONTINUE" THEN
  150. '*        IF IsDirWritable(INI_DEST$) = 0 THEN
  151. '*           GOSUB BADPATH
  152. '*           GOTO GETINIPATHL1
  153. '*        END IF
  154. '*        UIPop 1
  155. '*    ELSEIF sz$ = "REACTIVATE" THEN
  156. '*        GOTO GETPATHL1
  157. '*    ELSE
  158. '*        GOSUB ASKQUIT
  159. '*        GOTO GETINIPATH
  160. '*    END IF
  161.  
  162.  
  163.     Install
  164.  
  165.  
  166. QUIT:
  167.     ON ERROR GOTO ERRQUIT
  168.  
  169.     IF ERR = 0 THEN
  170.         dlg% = EXITSUCCESS
  171.     ELSEIF ERR = STFQUIT THEN
  172.         dlg% = EXITQUIT
  173.     ELSE
  174.         dlg% = EXITFAILURE
  175.     END IF
  176. QUITL1:
  177.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  178.     IF sz$ = "REACTIVATE" THEN
  179.         GOTO QUITL1
  180.     END IF
  181.     UIPop 1
  182.  
  183.     END
  184.  
  185. ERRQUIT:
  186.     i% = DoMsgBox("Setup sources were corrupted, call 555-1212!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  187.     END
  188.  
  189.  
  190.  
  191. BADPATH:
  192.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  193.     IF sz$ = "REACTIVATE" THEN
  194.         GOTO BADPATH
  195.     END IF
  196.     UIPop 1
  197.     RETURN
  198.  
  199.  
  200.  
  201. ASKQUIT:
  202.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  203.  
  204.     IF sz$ = "EXIT" THEN
  205.         UIPopAll
  206.         ERROR STFQUIT
  207.     ELSEIF sz$ = "REACTIVATE" THEN
  208.         GOTO ASKQUIT
  209.     ELSE
  210.         UIPop 1
  211.     END IF
  212.     RETURN
  213.  
  214.  
  215.  
  216. '**
  217. '** Purpose:
  218. '**     Builds the copy list and performs all installation operations.
  219. '** Arguments:
  220. '**     none.
  221. '** Returns:
  222. '**     none.
  223. '*************************************************************************
  224. SUB Install STATIC
  225.  
  226.     RemoveFile GetWindowsDir() + "NETUSA.INI", cmoNone
  227.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  228.     CreateDir DEST$, cmoNone
  229.  
  230.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$ 
  231.     AddSectionFilesToCopyList "Options", SrcDir$, INI_DEST$
  232.     AddSectionFilesToCopyList "Winsys", SrcDir$, SYS_DEST$
  233.  
  234.     SrcDir$ = ""
  235.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  236.     AddSectionFilesToCopyList "netscape", SrcDir$, DEST$
  237. '*    AddSectionKeyFileToCopyList "Options", OPTCUR$, SrcDir$, DEST$
  238.     CopyFilesInCopyList
  239.  
  240.     CreateProgmanGroup "NetUSA", "", cmoNone
  241.     ShowProgmanGroup  "NetUSA", 1, cmoNone
  242.     CreateProgmanItem "NetUSA", "NetUSA", ""+MakePath(DEST$,"netusa.exe"),"", cmoOverwrite
  243. '*   CreateProgmanItem "NetUSA", "dlgprocs.c", "notepad.exe "+MakePath(DEST$,"dlgprocs.c"), "", cmoOverwrite
  244.  
  245.     AddDos5Help "YOURAPP", "A brief help text for your Windows application."+chr$(10)+"It can be continued on another line with chr$(10).", cmoNone
  246.         
  247.     ini$ = MakePath(DEST$, "TRUMPWSK.INI")
  248.     IF OPTCUR$ = "1" THEN
  249.         CreateIniKeyValue ini$, "Trumpet Winsock", "slip-port", "1" , cmoOverwrite
  250.     ELSEIF OPTCUR$ = "2" THEN
  251.         CreateIniKeyValue ini$, "Trumpet Winsock", "slip-port", "2" , cmoOverwrite
  252.     ELSEIF OPTCUR$ = "3" THEN
  253.         CreateIniKeyValue ini$, "Trumpet Winsock", "slip-port", "3" , cmoOverwrite
  254.     ELSEIF OPTCUR$ = "4" THEN  
  255.         CreateIniKeyValue ini$, "Trumpet Winsock", "slip-port", "4" , cmoOverwrite
  256.     END IF 
  257.     
  258.     IF OPTCUR_BAUD$ = "1" THEN
  259.         CreateIniKeyValue ini$, "Trumpet Winsock", "slip-baudrate", "1200" , cmoOverwrite
  260.     ELSEIF OPTCUR_BAUD$ = "2" THEN
  261.         CreateIniKeyValue ini$, "Trumpet Winsock", "slip-baudrate", "2400" , cmoOverwrite
  262.     ELSEIF OPTCUR_BAUD$ = "3" THEN
  263.         CreateIniKeyValue ini$, "Trumpet Winsock", "slip-baudrate", "4800" , cmoOverwrite
  264.     ELSEIF OPTCUR_BAUD$ = "4" THEN  
  265.         CreateIniKeyValue ini$, "Trumpet Winsock", "slip-baudrate", "9600" , cmoOverwrite  
  266.     ELSEIF OPTCUR_BAUD$ = "5" THEN  
  267.         CreateIniKeyValue ini$, "Trumpet Winsock", "slip-baudrate", "19200" , cmoOverwrite
  268.     END IF
  269.  
  270.     CreateIniKeyValue ini$, "default vars", "$number",PHONE$, cmoNone 
  271.     
  272.     ini$ = MakePath(DEST$, "NETSCAPE.INI")
  273.     CreateIniKeyValue ini$, "Services", "Socks Conf", MakePath(INI_DEST$,"socks.cnf") , cmoOverwrite
  274.     
  275.     ini$ = MakePath(INI_DEST$, "NETUSA.INI")
  276.     CreateIniKeyValue "WIN.INI", "NetUSA", "Option", OPTCUR$, cmoNone
  277.     CreateIniKeyValue ini$, "CIC", "WWWClient", MakePath(DEST$,"netscape.exe") , cmoNone
  278.     CreateIniKeyValue ini$, "INTERNET", "Mail", MakePath(DEST$,"winpmail.exe") , cmoNone
  279.     CreateIniKeyValue ini$, "INTERNET", "Ftp", MakePath(DEST$,"ws_ftp.exe") , cmoNone   
  280.     CreateIniKeyValue ini$, "INTERNET", "Telnet", MakePath(DEST$,"trmptel.exe") , cmoNone
  281.     CreateIniKeyValue ini$, "NETUSA", "Login", MakePath(DEST$,"tcpman.exe") , cmoNone
  282.     CreateIniKeyValue ini$, "NETUSA", "Logout", MakePath(DEST$,"tcpman.exe") , cmoNone 
  283.    
  284.  
  285. END SUB
  286.  
  287.  
  288.  
  289. '**
  290. '** Purpose:
  291. '**     Appends a file name to the end of a directory path,
  292. '**     inserting a backslash character as needed.
  293. '** Arguments:
  294. '**     szDir$  - full directory path (with optional ending "\")
  295. '**     szFile$ - filename to append to directory
  296. '** Returns:
  297. '**     Resulting fully qualified path name.
  298. '*************************************************************************
  299. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  300.     IF szDir$ = "" THEN
  301.         MakePath = szFile$
  302.     ELSEIF szFile$ = "" THEN
  303.         MakePath = szDir$
  304.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  305.         MakePath = szDir$ + szFile$
  306.     ELSE
  307.         MakePath = szDir$ + "\" + szFile$
  308.     END IF
  309. END FUNCTION
  310.  
  311.